\documentclass[12pt]{article}
\usepackage{times}
\usepackage{graphicx}
\usepackage{sidecap}
\usepackage{wrapfig}
\usepackage{fancyhdr}
\usepackage{amsmath}
\pagestyle{fancy}
\renewcommand{\baselinestretch}{1.2}
\newenvironment{mylisting}
{\begin{list}{}{\setlength{\leftmargin}{1em}}\item\scriptsize\bfseries}
{\end{list}}
\newenvironment{mylisting2}
{\begin{list}{}{\setlength{\leftmargin}{1em}}\item\scriptsize\bfseries}
{\end{list}}
\newenvironment{mylisting3}
{\begin{list}{}{\setlength{\leftmargin}{1em}}\item\scriptsize\bfseries}
{\end{list}}
\newenvironment{mylisting4}
{\begin{list}{}{\setlength{\leftmargin}{1em}}\item\scriptsize\bfseries}
{\end{list}}
\newenvironment{mylisting5}
{\begin{list}{}{\setlength{\leftmargin}{1em}}\item\scriptsize\bfseries}
{\end{list}}
\newenvironment{mylisting6}
{\begin{list}{}{\setlength{\leftmargin}{1em}}\item\scriptsize\bfseries}
{\end{list}}
%Ik heb een indeling (zie postscript file in attachment.)                 
      
%1. introductie
%        game actors
%        examples
%        real-time systems (games)
%        specification of said actors
%2. network communication protocol based on atlas-python/atlas-cpp for
%ambienttalk (RPG) games
%        examples
%3. ad-hoc serving (ad-hoc client-server solutions)

%dan extras zoals MMORPG systemen voor mobiles.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%!!!!!!!!!!!!!!!--->
%Ik had ook begrepen dat ik ingenieus een stuk software beschrijf zodat
%toepassingen voor programmeurs ook uit mijn paper vloeien, vandaar de
%component theorie 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%% This file is Open Content - bubble
\begin{document}
	\textbf{{\Huge Game and Game Protocol Development on the ambienttalk platform}}
{\center{June 7, 2013, 
	Johan Ceuppens, Theo D'Hondt - Vrije Universiteit Brussel}}
\\

{\center{With thanks to : Ellie D'Hondt, the SOFT lab and the Open Source Community}}
{\center{This file is Open Content}}
{\large{\textbf{\center Abstract}}}
\\
\\
	There is a need for future development of online games in an ad-hoc
	manner. This paper discusses a protocol for ambient games. MMORPGs
	are an example together with game engines for having a OOP
	protocol as an actor communication device for interoperability.
	Furthermore there is a foundation for developing games on the
	ambienttalk platform as a component system.

\section{Introduction}

\subsection{\large Our problem}

%%%%%%%%%%%%%%%%% FIXME Theo's questions

This is the problem : MMORPG ad-hoc, ambient oriented possiblities, ambienttalk game design.\\

Why is this interesting ? lots of applicants.\\

What are current solutions ? game boy cable in 90ies to wireless now between embedded systems e.g. arm on Nintendo 3DS.\\

What didn't happen yet with this topic ? ad-hoc MMORPG, ambienttalk game engine design.\\

What do I do to help this ? expanding solutions with ambienttalk\\

How do I do this and what are my scientific solutions for this ? ambienttalk, android, iOS\\

Valdidation of my addon ? "lots"\\

What can alleviate my progress ? ambienttalk engines for games \\

\subsection{Game Actors}


There are 3 kinds of actors, first there is a particular actor (example : Java Bean), second is a global actor (example: COM object interface) and the third is
a combination of the previous two.

\subsubsection{A Game Actor Example : Ambient Perl}

Exisiting CORBA technology was the basis for distributed software systems using an Orb which could translate interfaces as in e.g. the COM/DCOM model to provide for access through the orb between languages. With an IDL (Interface Definition Language) there came a specification for each client/interface to serve itself with code of other langauges. These things existed in the elder days as UNIX's portmapper, NFS and later on Java's RMI (Remote Method Invocation.)
\\
The Perl crew started a project besides Mono (a UNIX/Linux C\# clone) called
Parrot which was to incorporate languages inside and besides Perl, the language 
itself.
\\
The orb is a single actor with many faces who serves an application with 
embedded (disrtibuted) code. Also inter-orb communication is possible.
\\
On a sidenote :\\
An ambient-oriented Perl can be made with CPAN modules or in-core
hacking of Perl's configuration or C bindings. Note that ActiveState Perl 
has COM bindings.\\
The C header file bindings possible in Perl (h2xs tool) also make for an
actor through references, Perl modules (e.g. CPAN modules) as a modular system
are OOP-wise actors as code. This explains Perl's orb : Parrot.

\subsubsection{Ambienttalk's Real-Time System in games}

%%%%%%%%%%%%%%FIXME real time system
As discussed in \cite{articleatwerner} an actor best has no race conditions for
acting upon messages in the future (delayed) and in games. Current games are real-time
software and highly parallel, their game engines should have feautures for 
this type of asynchronous message passing.

\subsubsection{Game Actor Specification}
%%%%%%%%%% FIXME + UML diagram

%%% async, sync, near future far future
\begin{itemize}
\item{asynchronous actor : an interrupt driven component which dispatches messages asynchronously}
\item{synchronous actor : a polling component also can be made full-duplex}
\item{near future message/actor : a component which dispatches to the near future, also with an expiration or not (UNIX send and recv)}
\item{median future message/actor : acomponent which dispatches or dispatches not in the near future }
\item{far future message/actor : a component which dispatches only over a mean time in the future}
\item{message processor component for the game protocol}
\item{message dispatcher component for the game protocol}
\item{any combination of the above}
\end{itemize}

Ambienttalk itself provides for future message dispatching and processing. 
The game protocol can be layered on top or in-core of ambienttalk. Both solutions make for an Object Oriented basis. 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% UML + pseudo-code zie cite articleatwerner
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



%\subsubsection{

\section{A Protocol for Game Engines in ambienttalk}
\section{Ambienttalk game engines}

\section{\large MMORPG ad-hoc solutions}

Ad-hoc networking extends the possibilities of scalable client-server programs.

\section{An OSS solution, Worldforge}

The Worldforge (WF) project started in 1998 to make an Ultima Online clone, a
game developed by Origin in the 80-90ies. It is a client-server system.

The WF project consisted of a python and C++ server software a heavyweight protocol (Atlas), a socket and toolkit package and several clients based on their interface to the system i.e. a 3D, 2D, isometric view and even text client.
\\
On a sidenote :
Later on, in 2003 I developed a SVG-based client for usage in MMORPG systems together with some other WF people. The server was to be done in Perl and the client was back in the day cored with rsvglib.

\subsection{What was impossible in the Worldforge project ?}

\begin{itemize}

\item{You could not time-travel. By dispatching ad-hoc in-game time-travel you can divide the huge load of data needed for this on ad-hoc servers and use in-game-futures to fix-up in-game history and current events.}

\end{itemize}

\section{ad-hoc serving}

\section{Examples of Simple Games : wePoker, AmbiScrabble}

The following games are without realtime needs.

The games located at http://soft.vub.ac.be/wePoker/ and http://soft.vub.ac.be/soft/edu/mscprojects/2012\_2013/agfw

are but examples of AT game development.
%%%%%%% FIXME one message at a time section 3.2 in http://soft.vub.ac.be/Publications/2004/vub-prog-tr-04-04.pdf
%%%%%%% race conditions
%%%%%%% solution : parallel messaging in our protocol dispatching


\bibliographystyle{plain}
\bibliography{plasmascreen} % plasmamath.bib


%article Zhou
%article Savvides 
\end{document}
